<?php
//1º verificacion: 13-10-2014
//Ultima verificacion: 14-10-2014 ; 20-11-2014 ; 20-02-2015
class M_tutor extends CI_Model {
	function _construct(){
		//Call the Model constructor
		parent::_construct();
	}
	
	//Este metodo se utiliza cuando queremos obtener los tutores existentes menos los borrados (-1)
	function buscar(){
		$consulta = $this->db->query("SELECT persona.*, tutor.idTutor, tutor.estado AS estadoTutor,
											(SELECT nombre FROM tipodocumento WHERE tipodocumento.idTipoDocumento=persona.idTipoDocumento AND tipodocumento.estado<>-1 LIMIT 1) AS tipoDocumento,
											DATE_FORMAT(tutor.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(tutor.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM persona, tutor
									  WHERE persona.idPersona=tutor.idPersona AND 
											persona.estado=1 AND 
											tutor.estado<>-1
									  ORDER BY persona.apellido ASC, persona.nombre ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza cuando queremos obtener los tutores activos
	function buscarActivos(){
		$consulta = $this->db->query("SELECT persona.*, tutor.idTutor, tutor.estado AS estadoTutor,
											(SELECT nombre FROM tipodocumento WHERE tipodocumento.idTipoDocumento=persona.idTipoDocumento AND tipodocumento.estado<>-1 LIMIT 1) AS tipoDocumento,
											DATE_FORMAT(tutor.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(tutor.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM persona, tutor
									  WHERE persona.idPersona=tutor.idPersona AND 
											persona.estado=1 AND
											tutor.estado=1
									  ORDER BY persona.apellido ASC, persona.nombre ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza para eliminar un tutor
	function eliminar($idTutor=null, $idDestructor=null){
		$consulta = $this->db->query("UPDATE `tutor`
									 SET `estado` = -1,
										 `idDestructor` = ". $this->db->escape($idDestructor) ."
							         WHERE `tutor`.`idTutor` = " . $this->db->escape($idTutor) . " LIMIT 1");
		return($this->db->affected_rows());
	}
			
	//Este metodo se utiliza para crear un tutor
	function crear($idPersona=null, $estado=null, $idCreador=null){
		$this->db->query("INSERT INTO `tutor` (`idTutor`,`idPersona`,`estado`,`fechaCreacion`,`idCreador`) VALUES 
											  (NULL,".$this->db->escape($idPersona).",".$this->db->escape($estado).",now(),".$this->db->escape($idCreador).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza generalmente en el formulario modificar o bien para verificar que exista el tutor
	function get($idTutor=null){
		$consulta = $this->db->query('SELECT persona.*, tutor.idTutor, tutor.estado AS estadoTutor, 
											(SELECT hash FROM archivo WHERE archivo.idArchivo=persona.idArchivoFoto LIMIT 1) AS hashArchivoFoto
									  FROM tutor, persona
									  WHERE tutor.idPersona=persona.idPersona AND 
											tutor.estado<>-1 AND 
											persona.estado<>-1 AND 
											tutor.idTutor='.$this->db->escape($idTutor).' 
									  LIMIT 1');
		return($consulta);
	}
	
	//Este metodo se utiliza en el formulario para modificar un tutor.
	function get2($idPersona=null){
		$consulta = $this->db->query('SELECT tutor.*
									  FROM tutor, persona
									  WHERE tutor.idPersona=persona.idPersona AND 
											tutor.estado<>-1 AND 
											persona.estado<>-1 AND 
											tutor.idPersona='.$this->db->escape($idPersona).' 
									  LIMIT 1');
		return($consulta);
	}
	
	//Este metodo se utiliza cuando se loguea una persona para saber si es tutor activo
	function getActivo($idPersona=null){
		$consulta = $this->db->query('SELECT tutor.*
									  FROM tutor, persona
									  WHERE tutor.idPersona=persona.idPersona AND 
											tutor.estado=1 AND 
											persona.estado=1 AND 
											tutor.idPersona='.$this->db->escape($idPersona).' 
									  LIMIT 1');
		return($consulta);
	}
					
	//Este metodo se utiliza para modificar un tutor
	function modificar($idTutor=null, $estado=null){
		$consulta = $this->db->query("UPDATE `tutor`
									 SET `estado` = ". $this->db->escape($estado) ."
							         WHERE `tutor`.`idTutor`=".$this->db->escape($idTutor)." LIMIT 1");
		return($this->db->affected_rows());
	}
}
?>